package com.javawork.juc.three;

/**
 * 静态方法，Thread.interrupted（）；判断线程是否被中断并清除当前中断状态。<br/>
 * 这个方法做了两件事：<br/>
 * 1.返回当前线程的中断状态，测试当前线程是否已被中断<br/>
 * 2.将当前线程的甲断状态精零并重新设为false，清除线程的中断状态此方法有点不好理解，
 * 如果连续两次调用此方法，则第二次调用将返回false，因为连续调用两次的结果可能不一样<br/>
 * @author zhangxiaolu
 * @since 2023-02-08 23:27
 */
public class InterruptDemo4 {

    /**
     * 方法的注释也清晰的表达了“中断状态将会根据传入的ClearInterrupted参数值确定是否重置”。
     * 所以，静态方法interrupted将会清除中断状态（传入的参数ClearInterrupted为true），
     * 实例方法isInterrupted则不会（传入的参数ClearInterrupted为false）。
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(Thread.currentThread().getName() + "\t" + Thread.interrupted());
        System.out.println(Thread.currentThread().getName() + "\t" + Thread.interrupted());
        System.out.println("------1");
        Thread.currentThread().interrupt();//中断标识设置为true
        System.out.println("------2");
        System.out.println(Thread.currentThread().getName() + "\t" + Thread.interrupted());
        System.out.println(Thread.currentThread().getName() + "\t" + Thread.interrupted());

        Thread.currentThread().isInterrupted();//实例方法
        Thread.interrupted();//静态方法
    }
}
